It is often necessary today to retrieve and compare biometric samples, or other exemplary identification samples, in order to properly identify a person. For example, a DNA test may be run in order to determine a person's genetic history, and/or to identify a potential perpetrator of a crime. Biometric data is often kept for comparison and stored in large databases, potentially with millions of other specimens. For example, in one embodiment, the biometric data could comprise fingerprint scans and the database could be filled with fingerprint scans from all of the customers of a mobile phone company, all of the customers for a banking institution, and/or all arrested felons in a given state. The example of fingerprint information as one of the types of biometric data collected and stored is to be understood as exemplary only. Additionally, biometric data may be used for purposes other than identification, for example a user may need to provide a fingerprint or iris scan in order to complete an authentication process.
Biometric databases are often searched to find a match to a given sample input. The purpose of the search may be to confirm the identity of the source of the sample, or to find a source. One of the most important components of a modern biometric application is the comparison module, which supports recognition functionality. Comparison modules provide one way to numerically estimate the quality of a match of a biometric specimen against one kept in a database. Customarily, the quality of a match is called a comparison score.
Typically, large biometric databases can hold up to hundreds of millions of records. As a consequence, the biometric application and the comparison module need to produce and analyze millions of scores in real time. Unfortunately, this can often result in the process of determining a match requiring a lengthy period of time to complete. Determining a match may also require a significant amount of processor power. A solution to these problems is desired.